widget: Include event controllers' event mask on gtk_widget_get_events()
authorCarlos Garnacho <carlosg@gnome.org>
Mon, 11 Aug 2014 14:44:51 +0000 (16:44 +0200)
committerCarlos Garnacho <carlosg@gnome.org>
Tue, 12 Aug 2014 12:28:34 +0000 (14:28 +0200)
gtk_widget_get_events() must indeed tell about events enabled purely through
a GtkEventController, those events will most surely trigger event handlers.

https://bugzilla.gnome.org/show_bug.cgi?id=734357

gtk/gtkwidget.c

index 1fa2958802861e21c30a8b248f9331e20c145f4d..83ff4fdfbbe40ac0a36292b890a6f5d80c640574 100644 (file)
@@ -11522,6 +11522,11 @@ gtk_widget_get_settings (GtkWidget *widget)
  * from the #GdkEventMask enumeration). These are the events that the widget
  * will receive.
  *
+ * Note: Internally, the widget event mask will be the logical OR of the event
+ * mask set through gtk_widget_set_events() or gtk_widget_add_events(), and the
+ * event mask necessary to cater for every #GtkEventController created for the
+ * widget.
+ *
  * Returns: event mask for @widget
  **/
 gint
@@ -11529,7 +11534,8 @@ gtk_widget_get_events (GtkWidget *widget)
 {
   g_return_val_if_fail (GTK_IS_WIDGET (widget), 0);
 
-  return GPOINTER_TO_INT (g_object_get_qdata (G_OBJECT (widget), quark_event_mask));
+  return GPOINTER_TO_INT (g_object_get_qdata (G_OBJECT (widget), quark_event_mask)) |
+    _gtk_widget_get_controllers_evmask (widget);
 }
 
 /**